package ligne2vie.topos.client.process;

/**
 * The interface {@link ProcessAction} defines all the methods a process action should implement in order to be embed in
 * a whole action process.
 * 
 * @author thuguerre
 * @since 1.0.0
 */
public interface ProcessAction {

	/**
	 * By calling the method {@link #start()}, the current action initializes itself (if not already done), focuses it
	 * if required and starts for the user.
	 */
	public void start();

	/**
	 * By calling the method {@link #end()}, the current action makes all action required to safely end before the
	 * following action starts or the process ends.
	 */
	public void end();

	/**
	 * If the current action embeds a form, it focuses it.
	 */
	public void focus();
}
